Bingo, Computer Graphics & Game Developer
1.
// 传递表给Lua
lua_createtable(luaState, 2, 0);
// [1]->49
// 1代表key值 一个键值指定一个value 类似于号码簿
lua_pushnumber(luaState, 1);
lua_pushnumber(luaState, 49);
// 压入两个参数之后索引变为-3 栈顶为-1
lua_rawset(luaState, -3);
// [2]->"Life is a Circle"
lua_pushnumber(luaState, 2);
lua_pushstring(luaState, "Life is a Circle");
// 上一步rawset已经清空栈 再次压入两个元素变为-3
lua_rawset(luaState, -3);
lua_setglobal(luaState, "tables");
搭配Lua文件中的
-- #table为获取当前table长度
for i=1, #tables do
print(i, tables[i])
end
2.数组在Lua中只不过是整数的Table而已 比如一个table作为array的时候可以是这样的
array = {12, “hello world”} (与C/C++类型确定语言不同的是 Lua数组里的元素可以是任何Lua类型 而C/C++规定了只能是一种类型)
print(array[1])
print(array[3])
Lua的数组下标是从1开始的 因此倘若你越界访问会得到一个nil值
print(array[0]) --nil
print(array["1"]) --nil
(和array[1]的区别:一个是integer作为key,一个是字符串做为key)